Skip to content

Make All Lights the LED chain instead of a partition over the zones - #23

Merged
bharvey88 merged 1 commit into
betafrom
fix/all-lights-is-the-chain
Aug 31, 2026
Merged

Make All Lights the LED chain instead of a partition over the zones#23
bharvey88 merged 1 commit into
betafrom
fix/all-lights-is-the-chain

Conversation

@bharvey88

Copy link
Copy Markdown
Contributor

Version: 26.8.28.1

What does this implement/fix?

#21 built All Lights as a partition over the five zone lights, which wraps each zone in an AddressableLightWrapper. That wrapper refuses to write a zone whose own state is on, so All Lights can only drive zones that are already off. Turn on Body Light, then turn All Lights off, and the body stays lit. It also reports one pixel per wrapped light, so All Lights is a five pixel strip and an effect on it renders as five blocks rather than a 37 pixel pattern.

The wrapping was never needed. All 37 LEDs sit on one chain on GPIO3, so the chain already is the all-lights light. This drops internal: true from it, names it All Lights, points the five zone partitions at it, and deletes the master block. Effects on a zone are unchanged, and effects on All Lights now address the real 37 pixels, so the index-driven ones (RainbowWave, Sandstorm) render as one pattern across the ornament instead of five copies.

color_correct: [40%, 40%, 40%] goes with it. Partitions substitute their own correction for every pixel they write, so the chain's value never applied to a zone, and nothing ever wrote through the chain itself. The 40% has never reached an LED on any build. Keeping the line would newly cap All Lights alone at 40% while the five zones stayed at 100%.

Types of changes

  • Bugfix (fixed change that fixes an issue)
  • New feature (thanks!)
  • Breaking change (repair/feature that breaks existing functionality)
  • Dependency Update - Does not publish
  • Other - Does not publish
  • Website of github readme file update - Does not publish
  • Github workflows - Does not publish

Checklist / Checklijst:

  • The code change has been tested and works locally
  • The code change has not yet been tested

If user-visible functionality or configuration variables are added/modified:

  • Added/updated documentation for the web page

esphome config passes on both H-3.yaml and H-3D.yaml against esphome 2026.8.1. Flashed to hardware over COM5 and running.

🤖 Generated with Claude Code

#21 built All Lights as a partition over the five zone lights, which wraps
each zone in an AddressableLightWrapper. That wrapper refuses to write a zone
whose own state is on, so All Lights could only drive zones that were already
off, and it reports one pixel per wrapped light, so effects on it rendered as
five blocks rather than a 37 pixel pattern.

All 37 LEDs sit on one chain on GPIO3, so the chain itself is the all-lights
light. Drop internal: true, name it All Lights, point the five zone partitions
at it, and delete the master block.

color_correct goes with it. Partitions substitute their own correction for
every pixel they write and nothing ever wrote through the chain, so the 40%
never reached an LED. Keeping it would cap All Lights alone at 40% while the
zones stayed at 100%.

Version 26.8.28.1

🤖 Generated with [Claude Code](https://claude.com/claude-code)
@bharvey88 bharvey88 added the bugfix Something isn't working label Aug 28, 2026
@coderabbitai

coderabbitai Bot commented Aug 28, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: be3fab1f-fece-45fc-b820-2e8cb4c93602


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@bharvey88
bharvey88 merged commit ddc2463 into beta Aug 31, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugfix Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant